package main

import (
	"fmt"
	"reflect"
)

//type User struct {
//	Name string
//	Age  int
//}

func main10() {
	user := User{
		Name: "A",
		Age:  18,
	}

	// 利用反射获得user指针的值对象
	getValue := reflect.ValueOf(&user)

	// 根据方法名"UpdateNameAndAge"获得方法对象
	methodValue := getValue.MethodByName("UpdateNameAndAge")

	// 构建参数列表
	args := []reflect.Value{reflect.ValueOf("B"), reflect.ValueOf(20)}

	// 调用方法，并将参数列表传入
	methodValue.Call(args)

	// 验证方法调用结果
	fmt.Println(user)
}
